-- Path of Building
--
-- Strength support gems
-- Skill data (c) Grinding Gear Games
--
local skills, mod, flag, skill = ...

#skill SupportAddedFireDamage
#mods

#skill SupportAddedFireDamagePlus
	statMap = {
		["supported_fire_skill_gem_level_+"] = {
			mod("SupportedGemProperty", "LIST", { keyword = "active_skill", key = "level", value = nil }, 0, 0, { type = "SkillType", skillType = SkillType.FireSkill }),
		},
	},
#mods

#skill SupportSpiritStrike
	statMap = {
		["support_spirit_strike_damage_+%_final"] = {
			mod("Damage", "MORE", nil),
		},
	},
#mods

#skill SupportAncestralCallPlus
	statMap = {
		["support_spirit_strike_damage_+%_final"] = {
			mod("Damage", "MORE", nil),
		},
	},
#mods

#skill SupportBloodMagic
#mods

#skill SupportBloodlust
	statMap = {
		["support_bloodlust_melee_physical_damage_+%_final_vs_bleeding_enemies"] = {
			mod("PhysicalDamage", "MORE", nil, ModFlag.Melee, 0, { type = "ActorCondition", actor = "enemy", var = "Bleeding" }),
		},
	},
#mods

#skill SupportBrutality
	statMap = {
		["support_brutality_physical_damage_+%_final"] = {
			mod("PhysicalDamage", "MORE", nil),
		},
	},
#mods

#skill SupportBrutalityPlus
	statMap = {
		["support_brutality_physical_damage_+%_final"] = {
			mod("PhysicalDamage", "MORE", nil),
		},
	},
#mods

#skill SupportIncreasedBurningDamage
	statMap = {
		["support_burning_damage_+%_final"] = {
			mod("FireDamage", "MORE", nil, 0, KeywordFlag.FireDot),
		},
	},
#mods

#skill SupportBurningDamagePlus
	statMap = {
		["support_burning_damage_+%_final"] = {
			mod("FireDamage", "MORE", nil, 0, KeywordFlag.FireDot),
		},
	},
#mods

#skill SupportCastOnMeleeKill
#mods

#skill SupportCastOnMeleeKillTriggered
	statMap = {
		["support_cast_on_melee_kill_spell_damage_+%_final"] = {
			mod("Damage", "MORE", nil, ModFlag.Spell),
		},
	},
#mods

#skill SupportCastOnDamageTaken
	statMap = {
		["cast_on_damage_taken_damage_+%_final"] = {
			mod("Damage", "MORE", nil),
		},
	},
#mods

#skill SupportChanceToBleed
	statMap = {
		["support_chance_to_bleed_bleeding_damage_+%_final"] = {
			mod("Damage", "MORE", nil, 0, KeywordFlag.Bleed),
		},
	},
#mods

#skill SupportColdToFire
#mods

#skill SupportMeleeDamageOnFullLife
	statMap = {
		["support_damage_while_on_full_life_+%_final"] = {
			mod("Damage", "MORE", nil, 0, 0, { type = "Condition", var = "FullLife" }),
		},
	},
#mods

#skill SupportWeaponElementalDamage
	statMap = {
		["support_attack_skills_elemental_damage_+%_final"] = {
			mod("ElementalDamage", "MORE", nil, 0, KeywordFlag.Attack),
		},
	},
#mods

#skill SupportWeaponElementalDamagePlus
	statMap = {
		["support_attack_skills_elemental_damage_+%_final"] = {
			mod("ElementalDamage", "MORE", nil, 0, KeywordFlag.Attack),
		},
	},
#mods

#skill SupportAdditionalLevel
	statMap = {
		["supported_active_skill_gem_level_+"] = {
			mod("SupportedGemProperty", "LIST", { keyword = "active_skill", key = "level", value = nil }),
		},
	},
#mods

#skill EnduranceChargeOnMeleeStun
	statMap = {
		["endurance_charge_on_melee_stun_damage_+%_final_per_endurance_charge"] = {
			mod("Damage", "MORE", nil, 0, 0, { type = "Multiplier", var = "EnduranceCharge" }),
		},
	},
#mods

#skill SupportFirePenetration
#mods

#skill SupportFirePenetrationPlus
#mods

#skill SupportFortify
	statMap = {
		["support_fortify_melee_damage_+%_final"] = {
			mod("Damage", "MORE", nil, ModFlag.Melee),
		},
		["support_fortify_ailment_damage_+%_final_from_melee_hits"] = {
			mod("Damage", "MORE", nil, bit.bor(ModFlag.MeleeHit, ModFlag.Ailment)),
		},
	},
#mods

#skill SupportGenerosity
	statMap = {
		["aura_cannot_affect_self"] = {
			skill("auraCannotAffectSelf", true),
		},
	},
#mods

#skill SupportGenerosityPlus
	statMap = {
		["aura_cannot_affect_self"] = {
			skill("auraCannotAffectSelf", true),
		},
	},
#mods

#skill SupportIncreasedDuration
#mods

#skill SupportIronGrip
#mods

#skill SupportIronWill
#mods

#skill SupportItemQuantity
#mods

#skill SupportKnockback
#mods

#skill SupportReducedDuration
	statMap = {
		["support_reduced_duration_skill_effect_duration_+%_final"] = {
			mod("Duration", "MORE", nil),
		},
		["support_reduced_duration_damage_+%_final"] = {
			mod("Damage", "MORE", nil),
		},
	},
#mods

#skill SupportLifeGainOnHit
#mods

#skill SupportLifeLeech
#mods

#skill SupportMaim
	statMap = {
		["support_maim_chance_physical_damage_+%_final"] = {
			mod("PhysicalDamage", "MORE", nil),
		},
		["support_maimed_enemies_physical_damage_taken_+%"] = {
			mod("PhysicalDamageTaken", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff", effectName = "Maim" }, { type = "Condition", var = "Maimed" }),
		},
	},
#mods

#skill SupportMeleePhysicalDamage
	statMap = {
		["support_melee_physical_damage_+%_final"] = {
			mod("PhysicalDamage", "MORE", nil, ModFlag.Melee),
		},
		["support_melee_physical_damage_poison_and_bleeding_damage_+%_final_from_melee_hits"] = {
			mod("Damage", "MORE", nil, ModFlag.MeleeHit, bit.bor(KeywordFlag.Bleed, KeywordFlag.Poison)),
		},
	},
#mods

#skill SupportMeleePhysicalDamagePlus
	statMap = {
		["support_melee_physical_damage_+%_final"] = {
			mod("PhysicalDamage", "MORE", nil, ModFlag.Melee),
		},
		["support_melee_physical_damage_poison_and_bleeding_damage_+%_final_from_melee_hits"] = {
			mod("Damage", "MORE", nil, ModFlag.MeleeHit, bit.bor(KeywordFlag.Bleed, KeywordFlag.Poison)),
		},
	},
#mods

#skill SupportMeleeSplash
#mods

#skill SupportMeleeSplashPlus
#mods

#skill SupportMultistrike
	statMap = {
		["multistrike_damage_+%_final_on_first_repeat"] = {
			mod("Damage", "MORE", nil, ModFlag.Attack),
		},
		["support_multiple_attack_damage_+%_final"] = {
			mod("Damage", "MORE", nil, ModFlag.Attack),
		},
		["support_multiple_attacks_melee_attack_speed_+%_final"] = {
			mod("Speed", "MORE", nil, bit.bor(ModFlag.Attack, ModFlag.Melee)),
		},
	},
#mods

#skill SupportMultistrikePlus
	statMap = {
		["multistrike_damage_+%_final_on_third_repeat"] = {
			mod("Damage", "MORE", nil, ModFlag.Attack),
			div = 2,
		},
		["support_multiple_attack_damage_+%_final"] = {
			mod("Damage", "MORE", nil, ModFlag.Attack),
		},
		["support_multiple_attacks_melee_attack_speed_+%_final"] = {
			mod("Speed", "MORE", nil, bit.bor(ModFlag.Attack, ModFlag.Melee)),
		},
	},
#mods

#skill SupportMultiTotem
	statMap = {
		["support_additional_totem_damage_+%_final"] = {
			mod("Damage", "MORE", nil),
		},
	},
#mods

#skill SupportPulverise
	statMap = {
		["support_pulverise_melee_area_damage_+%_final"] = {
			mod("Damage", "MORE", nil, bit.bor(ModFlag.Melee, ModFlag.Area)),
		},
		["support_pulverise_attack_speed_+%_final"] = {
			mod("Speed", "MORE", nil, ModFlag.Attack),
		},
	},
#mods

#skill SupportRage
	statMap = {
		["support_rage_gain_rage_on_melee_hit_cooldown_ms"] = {
			flag("Condition:CanGainRage"),
			mod("Dummy", "DUMMY", 1, 0, 0, { type = "Condition", var = "CanGainRage" }),
		},
		["attack_minimum_added_physical_damage_with_at_least_10_rage"] = {
			mod("PhysicalMin", "BASE", nil, bit.bor(ModFlag.Attack, ModFlag.Weapon), 0, { type = "MultiplierThreshold", var = "Rage", threshold = 10 })
		},
		["attack_maximum_added_physical_damage_with_at_least_10_rage"] = {
			mod("PhysicalMax", "BASE", nil, bit.bor(ModFlag.Attack, ModFlag.Weapon), 0, { type = "MultiplierThreshold", var = "Rage", threshold = 10 })
		},
		["attack_minimum_added_physical_damage_per_10_rage"] = {
			mod("PhysicalMin", "BASE", nil, bit.bor(ModFlag.Attack, ModFlag.Weapon), 0, { type = "Multiplier", var = "Rage", div = 10, limit = 5 })
		},
		["attack_maximum_added_physical_damage_per_10_rage"] = {
			mod("PhysicalMax", "BASE", nil, bit.bor(ModFlag.Attack, ModFlag.Weapon), 0, { type = "Multiplier", var = "Rage", div = 10, limit = 5 })
		},
	},
#mods

#skill SupportRangedAttackTotem
	addFlags = {
		totem = true,
		ballista = true,
	},
	statMap = {
		["support_attack_totem_attack_speed_+%_final"] = {
			mod("Speed", "MORE", nil, ModFlag.Attack),
		},
		["support_totem_damage_+%_final"] = {
			mod("Damage", "MORE", nil),
		},
	},
#mods

#skill SupportReducedMana
	statMap = {
		["elemental_damage_+%_final_per_righteous_charge"] = {
			mod("ElementalDamage", "MORE", nil, 0, 0, { type = "Multiplier", var = "InspirationCharge" }),
		},
		["critical_strike_chance_+%_per_righteous_charge"] = {
			mod("CritChance", "INC", nil, 0, 0, { type = "Multiplier", var = "InspirationCharge" }),
		},
	},
#mods

#skill SupportRuthless
	statMap = {
		["support_ruthless_big_hit_stun_base_duration_override_ms"] = {
			skill("baseStunDuration", nil),
			div = 1000,
		},
		["support_ruthless_big_hit_max_count"] = {
			mod("RuthlessBlowMaxCount", "BASE", nil),
		},
		["support_ruthless_big_hit_damage_+%_final"] = {
			mod("RuthlessBlowMultiplier", "BASE", nil, ModFlag.Melee),
		},
	},
#mods

#skill SupportBluntWeapon
#mods

#skill SupportBluntWeaponShockwave
#flags attack melee area
#mods

#skill SupportSpellTotem
	addFlags = {
		totem = true,
	},
	statMap = {	
		["support_spell_totem_cast_speed_+%_final"] = {
			mod("Speed", "MORE", nil, ModFlag.Cast),
		},
		["support_totem_damage_+%_final"] = {
			mod("Damage", "MORE", nil),
		},
	},
#mods

#skill SupportStun
#mods
